/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modules.legislation.gridcoverage;

import modules.legislation.datatypes.AntennaGroup;
import datatypes.Antenna;
import datatypes.RadiationPoint;

/**
 *
 * @author Pieter Backaert
 */
public interface SamplingGridInterface {

    /*
     *  Initialisation of the SamplingGrid
     *  Procedure :
     *      - calculate borders of the bounding box for all antennas together
     *      - Set up matrix that represents the sample points
     *      - Calculate the distance between each antenna and each sample point.
     *         (if relevant, store this information)
     */
    void initSamplingGrid();

    /*
     * Adjusts the Sampling Grid for antenna who became ACTIVE
     */
    void changeGridElementsForActiveAntenna(Antenna a);
    
    /*
     * Adjusts the Sampling Grid for antenna who became INACTIVE
     */
    void changeGridElementsForInactiveAntenna(Antenna a);

    /*
     * Returns the sampling grid with corresponding SAR-values at each
     * Sampled Point
     */
    RadiationPoint[][] getRadiationPointGrid();
    
    /*
     * Returns the entire datastructure which represents a group of antennas
     * for each sampling point.
     */
    AntennaGroup[][] getAntennaGroupGrid();


}
